﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLVatTu.Class;

namespace QLVatTu.DanhMuc
{
    public partial class frmDoiTac : Form
    {
        public frmDoiTac()
        {
            InitializeComponent();
        }

        KetNoiDB cn = new KetNoiDB();
        string tag = "";

        private void load_dtgDoiTac(string dieuKien=null)
        {
            string sql = "";
            if (dieuKien != null)
            {
                sql = @"select * from tbl_DoiTac
                      "
                    + dieuKien;
            }
            else
            {
                sql = @"select * from tbl_DoiTac
                        ";
            }
            DataTable tbl = cn.getTable(sql);
            dtgDoiTac.DataSource = tbl;
        }

        private void load_button(string tag)
        {
            if (tag == "them")
            {
                btnThem.Enabled = false;
                btnSua.Enabled = false;
                btnXoa.Enabled = false;

                btnLuu.Enabled = true;
                btnHuy.Enabled = true;

                txtMaDoiTac.Enabled = false;
                txtTenDoiTac.Text = "";
                txtTenDoiTac.Enabled = true;
                txtDiaChi.Text = "";
                txtDiaChi.Enabled = true;
                txtDienThoai.Text = "";
                txtDienThoai.Enabled = true;
                txtEmail.Text = "";
                txtEmail.Enabled = true;
                chkNhaCungCap.Enabled = true;
                chkDonViSanXuat.Enabled = true;
                chkKhachHang.Enabled = true;
                chkNhaCungCap.Checked = false;
                chkDonViSanXuat.Checked = false;
                chkKhachHang.Checked = false;
            }
            else if (tag == "sua")
            {
                btnThem.Enabled = false;
                btnSua.Enabled = false;
                btnXoa.Enabled = false;

                btnLuu.Enabled = true;
                btnHuy.Enabled = true;

                txtMaDoiTac.Enabled = false;
                txtTenDoiTac.Enabled = true;
                txtDiaChi.Enabled = true;
                txtDienThoai.Enabled = true;
                txtEmail.Enabled = true;
                chkNhaCungCap.Enabled = true;
                chkDonViSanXuat.Enabled = true;
                chkKhachHang.Enabled = true;

            }
            else
            {
                btnThem.Enabled = true;
                btnSua.Enabled = true;
                btnXoa.Enabled = true;

                btnLuu.Enabled = false;
                btnHuy.Enabled = false;

                txtMaDoiTac.Enabled = false;
                txtTenDoiTac.Enabled = false;
                txtDiaChi.Enabled = false;
                txtDienThoai.Enabled = false;
                txtEmail.Enabled = false;
                chkNhaCungCap.Enabled = false;
                chkDonViSanXuat.Enabled = false;
                chkKhachHang.Enabled = false;
            }
        }


        private void frmDoiTac_Load(object sender, EventArgs e)
        {

            load_button(tag);

            if (cn.KetNoi())
            {
                loadData();
            }
        }

        private void loadData()
        {
            load_dtgDoiTac();
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            if (TopLevel == false) this.Parent.Parent.Controls.Remove(this.Parent);
            else this.Close();
        }

        private void dtgDoiTac_SelectionChanged(object sender, EventArgs e)
        {
            if (dtgDoiTac.SelectedRows.Count > 0)
            {
                txtMaDoiTac.Text = dtgDoiTac.CurrentRow.Cells["colMaDoiTac"].Value.ToString();
                txtTenDoiTac.Text = dtgDoiTac.CurrentRow.Cells["colTenDoiTac"].Value.ToString();
                txtDiaChi.Text = dtgDoiTac.CurrentRow.Cells["colDiaChi"].Value.ToString();
                txtDienThoai.Text = dtgDoiTac.CurrentRow.Cells["colDienThoai"].Value.ToString();
                txtEmail.Text = dtgDoiTac.CurrentRow.Cells["colEmail"].Value.ToString();
                chkNhaCungCap.Checked = bool.Parse(dtgDoiTac.CurrentRow.Cells["colNhaCungCap"].Value.ToString());
                chkDonViSanXuat.Checked = bool.Parse(dtgDoiTac.CurrentRow.Cells["colDonViSanXuat"].Value.ToString());
                chkKhachHang.Checked = bool.Parse(dtgDoiTac.CurrentRow.Cells["colKhachHang"].Value.ToString());
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            tag="them";
            txtMaDoiTac.Text = cn.SinhMa("MaDoiTac","tbl_DoiTac","DT");
            load_button(tag);
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            tag = "sua";
            load_button(tag);
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (cn.KetNoi())
            {
                if (tag == "them")
                {
                    if (txtTenDoiTac.Text == "")
                    {
                        MessageBox.Show("Bạn chưa nhập tên đối tác","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
                        txtTenDoiTac.Focus();
                        return;
                    }
                    else if (txtDiaChi.Text == "")
                    {
                        MessageBox.Show("Bạn chưa nhập địa chỉ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtDiaChi.Focus();
                        return;
                    }
                    else if (txtDienThoai.Text == "")
                    {
                        MessageBox.Show("Bạn chưa nhập số điện thoại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtDienThoai.Focus();
                        return;
                    }
                    else if (txtEmail.Text == "")
                    {
                        MessageBox.Show("Bạn chưa nhập Email", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtEmail.Focus();
                        return;
                    }

                    else if (chkNhaCungCap.Checked == false && chkDonViSanXuat.Checked == false && chkKhachHang.Checked == false)
                    {
                        MessageBox.Show("Bạn chưa chọn kiểu đối tác", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    string TenDoiTac = cn.LayDuLieu("select TenDoiTac from tbl_DoiTac where lower(TenDoiTac)=N'"+txtTenDoiTac.Text.ToLower()+"'");
                    if (TenDoiTac != "")
                    {
                        MessageBox.Show("Đối tác này đã tồn tại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtTenDoiTac.Focus();
                        return;
                    }

                    if (chkNhaCungCap.Checked == true)
                    {
                        cn.Insert_Table("tbl_DoiTac", "MaDoiTac,TenDoiTac,DiaChi,DienThoai,Email,NhaCungCap,DonViSanXuat,KhachHang", "'" + txtMaDoiTac.Text + "',N'" + txtTenDoiTac.Text + "',N'" + txtDiaChi.Text + "',N'" + txtDienThoai.Text + "',N'" + txtEmail.Text + "','1','0','0'");

                    }
                    else if (chkDonViSanXuat.Checked == true)
                    {
                        cn.Insert_Table("tbl_DoiTac", "MaDoiTac,TenDoiTac,DiaChi,DienThoai,Email,NhaCungCap,DonViSanXuat,KhachHang", "'" + txtMaDoiTac.Text + "',N'" + txtTenDoiTac.Text + "',N'" + txtDiaChi.Text + "',N'" + txtDienThoai.Text + "',N'" + txtEmail.Text + "','0','1','0'");
                    }
                    else if (chkKhachHang.Checked == true)
                    {
                        cn.Insert_Table("tbl_DoiTac", "MaDoiTac,TenDoiTac,DiaChi,DienThoai,Email,NhaCungCap,DonViSanXuat,KhachHang", "'" + txtMaDoiTac.Text + "',N'" + txtTenDoiTac.Text + "',N'" + txtDiaChi.Text + "',N'" + txtDienThoai.Text + "',N'" + txtEmail.Text + "','0','0','1'");
                    }
                }
                else
                {
                    if (chkNhaCungCap.Checked == true)
                    {
                        cn.Update_Table("tbl_DoiTac", "TenDoiTac=N'"+txtTenDoiTac.Text+"',DiaChi=N'"+txtDiaChi.Text+"',DienThoai='"+txtDienThoai.Text+"',Email='"+txtEmail.Text+"',NhaCungCap=1,DonViSanXuat=0,KhachHang=0", "MaDoiTac='"+txtMaDoiTac.Text+"'");
                    }
                    else if (ckbDonViSanXuat.Checked == true)
                    {
                        cn.Update_Table("tbl_DoiTac", "TenDoiTac=N'" + txtTenDoiTac.Text + "',DiaChi=N'" + txtDiaChi.Text + "',DienThoai='" + txtDienThoai.Text + "',Email='" + txtEmail.Text + "',NhaCungCap=0,DonViSanXuat=1,KhachHang=0", "MaDoiTac='" + txtMaDoiTac.Text + "'");

                    }
                    else if (chkKhachHang.Checked == true)
                    {
                        cn.Update_Table("tbl_DoiTac", "TenDoiTac=N'" + txtTenDoiTac.Text + "',DiaChi=N'" + txtDiaChi.Text + "',DienThoai='" + txtDienThoai.Text + "',Email='" + txtEmail.Text + "',NhaCungCap=0,DonViSanXuat=0,KhachHang=1", "MaDoiTac='" + txtMaDoiTac.Text + "'");

                    }
                }
                load_dtgDoiTac();
                load_button("");
            }
        }

        private void grpCheDoTimKiem_Click(object sender, EventArgs e)
        {

        }

        private void chkMaDoiTac_CheckedChanged(object sender, EventArgs e)
        {
            if (chkMaDoiTac.Checked == true)
            {
                txtTKMaDoiTac.Text = "";
                txtTKMaDoiTac.Enabled = true;
            }
            else
            {
                txtTKMaDoiTac.Text = "Tìm theo mã đối tác";
                txtTKMaDoiTac.Enabled = false;
            }
        }

        private void chkTenDoiTac_CheckedChanged(object sender, EventArgs e)
        {
            if (chkTenDoiTac.Checked == true)
            {
                txtTKTenDoiTac.Text = "";
                txtTKTenDoiTac.Enabled = true;
            }
            else
            {
                txtTKTenDoiTac.Text = "Tìm theo tên đối tác";
                txtTKTenDoiTac.Enabled = false;
            }
        }

        private void chkDiaChi_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDiaChi.Checked == true)
            {
                txtTKDiaChi.Text = "";
                txtTKDiaChi.Enabled = true;
            }
            else
            {
                txtTKDiaChi.Text = "Tìm theo địa chỉ";
                txtTKDiaChi.Enabled = false;
            }
        }

        private string XacDinhDieuKienLoc()
        {
            string dieuKienLoc = "where 1=1";

            if (chkMaDoiTac.Checked == true && txtTKMaDoiTac.Text.Trim() != "")
            {
                dieuKienLoc += "and MaDoiTac like '%"+txtTKMaDoiTac.Text.Trim()+"%'";
            }

            if (chkTenDoiTac.Checked == true && txtTKTenDoiTac.Text.Trim() != "")
            {
                dieuKienLoc += "and TenDoiTac like '%"+txtTKTenDoiTac.Text.Trim()+"%'";
            }

            if (chkDiaChi.Checked == true && txtTKDiaChi.Text.Trim() != "")
            {
                dieuKienLoc += "and DiaChi like '%"+txtTKDiaChi.Text.Trim()+"%'";
            }

            if (ckbNhaCungCap.Checked == true)
            {
                dieuKienLoc += "and NhaCungCap=1";
            }

            if (ckbDonViSanXuat.Checked == true)
            {
                dieuKienLoc += "and DonViSanXuat=1";
            }

            if (ckbKhachHang.Checked == true)
            {
                dieuKienLoc += "and KhachHang=1";
            }

            return dieuKienLoc;
        }

        private void btnTimKiem_Click(object sender, EventArgs e)
        {
            load_dtgDoiTac(XacDinhDieuKienLoc());
        }

        private void ckbNhaCungCap_CheckedChanged(object sender, EventArgs e)
        {
            if (ckbNhaCungCap.Checked == true)
            {
                ckbKhachHang.Enabled = false;
                ckbDonViSanXuat.Enabled = false;
            }
            else
            {
                ckbDonViSanXuat.Enabled = true;
                ckbKhachHang.Enabled = true;
            }

        }

        private void ckbDonViSanXuat_CheckedChanged(object sender, EventArgs e)
        {
            if (ckbDonViSanXuat.Checked == true)
            {
                ckbNhaCungCap.Enabled = false;
                ckbKhachHang.Enabled = false;
            }
            else
            {
                ckbNhaCungCap.Enabled = true;
                ckbKhachHang.Enabled = true;
            }

        }

        private void ckbKhachHang_CheckedChanged(object sender, EventArgs e)
        {
            if (ckbKhachHang.Checked == true)
            {
                ckbDonViSanXuat.Enabled = false;
                ckbNhaCungCap.Enabled = false;
            }
            else
            {
                ckbDonViSanXuat.Enabled = true;
                ckbNhaCungCap.Enabled = true;
            }
        }

        private void chkNhaCungCap_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNhaCungCap.Checked == true)
            {
                chkDonViSanXuat.Enabled = false;
                chkKhachHang.Enabled = false;
            }
            else
            {
                chkKhachHang.Enabled = true;
                chkDonViSanXuat.Enabled = true;
            }
        }

        private void chkDonViSanXuat_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDonViSanXuat.Checked == true)
            {
                chkNhaCungCap.Enabled = false;
                chkKhachHang.Enabled = false;
            }
            else
            {
                chkKhachHang.Enabled = true;
                chkNhaCungCap.Enabled = true;
            }

        }

        private void chkKhachHang_CheckedChanged(object sender, EventArgs e)
        {
            if (chkKhachHang.Checked == true)
            {
                chkNhaCungCap.Enabled = false;
                chkDonViSanXuat.Enabled = false;
            }
            else
            {
                chkDonViSanXuat.Enabled = true;
                chkNhaCungCap.Enabled = true;
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            load_button("");
        }

        private void txtDienThoai_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (kt == true)
            {
                e.Handled = true;
            }
        }

        private bool kt = false;

        private void txtDienThoai_KeyDown(object sender, KeyEventArgs e)
        {
            kt = false;

            if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
            {
                if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
                {
                    if (e.KeyCode != Keys.Back)
                    {
                        kt = true;
                    }
                }
            }
            if (Control.ModifierKeys == Keys.Shift)
            {
                kt = true;
            }
        }
    }
}
